package com.example.myhelloworld.client;

import com.google.gwt.user.client.rpc.AsyncCallback;

/**
 * The async counterpart of <code>GreetingService</code>.
 */
public interface GreetingServiceAsync {
  void greetServer(String input, AsyncCallback<String> callback);
  void isUserLoggedIn(String service, AsyncCallback<Boolean> callback);
  void getLoginURL(String service, String dest, AsyncCallback<String> callback);
  void getLogoutURL(String service, String dest, AsyncCallback<String> callback);
  void getUser(String service, AsyncCallback<String> callback);
  void sendResult(String service, AsyncCallback<String> callback);
  void getSidebarList(String username, AsyncCallback<String> callback);
  void getAllUsers(AsyncCallback<String> callback);
  void changeUser(String username, AsyncCallback<String> callback);
  void addExercise(String exerciseDescriptor,AsyncCallback<String> callback);
  void submitResult(String result, AsyncCallback<String> callback);
  void getExerciseNames(AsyncCallback<String> callback);
  void getExerciseResults(String exerciseName, AsyncCallback<String> callback);
  void dropDataBaseExercises(AsyncCallback<String> callback);
  void fillDataBaseExercises(AsyncCallback<String> callback);
  void checkValidLogin(String usernameAndPassword, AsyncCallback<String> callback);
  void userNotInDatabase(String userName, AsyncCallback<Boolean> callback);
  void adduser(String userName, String passwordHash, String question, String answerHash, AsyncCallback<String> callback);
  void getUserQuestion(String userName, AsyncCallback<String> callback);
  void checkValidAnswer(String userName, String questionHash, AsyncCallback<String> callback);
}

